package com.sinoglobal.dumping.base;

import static com.sinoglobal.dumping.base.Dumpling_SinoConstans.*;
import android.content.Context;

import java.util.Map;

/**
 * Created by KeZhuang on 2015/6/11.
 */
public class Dumpling_SinoValueManager {
    private static Map<String, Object> sMap;

    static{
        sMap = Dumpling_SinoConfig.getMap();
    }

    /**
     * 取值<Br>优先Application中取值,如果取不到就从SharedPreference中取值
     * @param context 上下文
     * @param key 存值时候的key
     * @param defaultObject 默认值,取不到值的时候会返回这个
     * @return
     */
    public static Object getValue(Context context,String key,Object defaultObject){
        Object object;
        if(key==null){
            return null;
        }
        if(sMap.containsKey(key)){
            object = sMap.get(key);
            return object;
        }
        if(Dumpling_SharedPreferenceUtil.contains(context, key)){
            object = Dumpling_SharedPreferenceUtil.get(context, key, defaultObject);
            return object;
        }
        object = defaultObject;
        return object;
    }

    /**
     * 存值 SharedPreference和Application都会存一遍
     * @param context 上下文对象
     * @param key 存值用的key
     * @param value 需要存得值
     * @param isAddSP 是否添加到SharedPreference中 true添加,false不添加
     */
    public static void putValue(Context context,String key,Object value,boolean isAddSP){
        sMap.put(key, value);
        if(isAddSP){
            Dumpling_SharedPreferenceUtil.put(context, key, value);
        }
    }
    /**
     * 移除某个值
     * @param context 上下文对象
     * @param key 移除的key
     * @param isAddSP 是否移除SharedPreference中 true添加,false不添加
     */
    public static void removeValue(Context context,String key,boolean isAddSP){
        if(sMap.containsKey(key)){
            sMap.remove(key);
        }
        if(isAddSP){
            Dumpling_SharedPreferenceUtil.remove(context, key);
        }
    }

    /**
     * 清除所有数据
     * @param isSp 是否清除SharedPreference里边的数据
     */
    public static void clearValue(Context context,boolean isSp){
        sMap.clear();
        if(isSp){
            Dumpling_SharedPreferenceUtil.clear(context);
        }
    }
    /**清楚所有饺子信息*/
    public static void clearAllDumpling(Context context){
        removeValue(context,DUMPLING_COUNT,true);
        removeValue(context,DUMPLING_TIME,true);
        removeValue(context,DUMPLING_ID_LIST,true);
        removeValue(context,DUMPLING_MONEY,true);
        removeValue(context,DUMPLING_COUPON,true);
        removeValue(context,DUMPLING_CODE,true);
        removeValue(context,DUMPLING_NO_LOGIN_COUNT,true);
    }
}
